glcontext-wayland: Only allocate configs we use
authorTimm Bäder <mail@baedert.org>
Thu, 24 Dec 2020 08:09:35 +0000 (09:09 +0100)
committerTimm Bäder <mail@baedert.org>
Sun, 3 Jan 2021 10:01:28 +0000 (11:01 +0100)
We only use the first one, so don't allocate space for more than that.

gdk/wayland/gdkglcontext-wayland.c

index a668731196f1932263f4b110e6ba8161d0520f38..d49f2cec0ee5ac1936b6076116a7d1e40b6b4a4b 100644 (file)
@@ -386,7 +386,7 @@ find_eglconfig_for_surface (GdkSurface  *surface,
   GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display);
   EGLint attrs[MAX_EGL_ATTRS];
   EGLint count;
-  EGLConfig *configs;
+  EGLConfig config;
   int i = 0;
 
   attrs[i++] = EGL_SURFACE_TYPE;
@@ -407,17 +407,8 @@ find_eglconfig_for_surface (GdkSurface  *surface,
   attrs[i++] = EGL_NONE;
   g_assert (i < MAX_EGL_ATTRS);
 
-  if (!eglChooseConfig (display_wayland->egl_display, attrs, NULL, 0, &count) || count < 1)
-    {
-      g_set_error_literal (error, GDK_GL_ERROR,
-                           GDK_GL_ERROR_UNSUPPORTED_FORMAT,
-                           _("No available configurations for the given pixel format"));
-      return FALSE;
-    }
-
-  configs = g_new (EGLConfig, count);
-
-  if (!eglChooseConfig (display_wayland->egl_display, attrs, configs, count, &count) || count < 1)
+  /* Pick first valid configuration i guess? */
+  if (!eglChooseConfig (display_wayland->egl_display, attrs, &config, 1, &count) || count < 1)
     {
       g_set_error_literal (error, GDK_GL_ERROR,
                            GDK_GL_ERROR_UNSUPPORTED_FORMAT,
@@ -425,12 +416,8 @@ find_eglconfig_for_surface (GdkSurface  *surface,
       return FALSE;
     }
 
-  /* Pick first valid configuration i guess? */
-
-  if (egl_config_out != NULL)
-    *egl_config_out = configs[0];
-
-  g_free (configs);
+  g_assert (egl_config_out);
+  *egl_config_out = config;
 
   return TRUE;
 }